
package org.eddycar.jproyeddycar.contrato.modelo;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;

@Entity
public class SolicitudFinanciamiento implements Serializable {

    public SolicitudFinanciamiento() {
    }
    //Datos de la Solicitud
    @Id
    private String id;
    private double valorFinal = 0.0;
    private double entrada = 0.0;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date fechaContrato;
    private double saldoAdeudado = 0.0;
    private int plazo = 0;
    private double cuotaMensual = 0.0;
    private double interes = 0.0;
    //Datos del Cliente
    private String clienteCedula;
    private String clienteNombresApellidos;
    private String clienteEdad;
    private String clienteEstadoCivil;
    private String clienteTelefono;
    private String clienteDireccionDomicilio;
    private String clienteDireccionTrabajo;

    public void datosCliente(String cedula, String nombres, String edad, String estado, String telefono, String DireccionDomicilio, String DireccionTrabajo) {
        this.clienteCedula = cedula;
        this.clienteNombresApellidos = nombres;
        this.clienteEdad = edad;
        this.clienteEstadoCivil = estado;
        this.clienteTelefono = telefono;
        this.clienteDireccionDomicilio = DireccionDomicilio;
        this.clienteDireccionTrabajo = DireccionTrabajo;
    }
    //Datos del Conyuge
    private String conyugeCedula;
    private String conyugeNombresApellidos;
    private String conyugeTelefono;

    public void datosConyuge(String cedula, String nombres, String telefono) {
        this.conyugeCedula = cedula;
        this.conyugeNombresApellidos = nombres;
        this.conyugeTelefono = telefono;

    }
    //Datos del Garante
    private String garanteCedula;
    private String garanteNombresApellidos;
    private String garanteEstadoCivil;
    private String garanteEdad;
    private String garanteTelefonos;
    private String garanteDireccionDomicilio;

    public void datosGarante(String cedula, String nombres, String edad, String estado, String telefono, String DireccionDomicilio) {
        this.garanteCedula = cedula;
        this.garanteNombresApellidos = nombres;
        this.garanteEdad = edad;
        this.garanteEstadoCivil = estado;
        this.garanteTelefonos = telefono;
        this.garanteDireccionDomicilio = DireccionDomicilio;
    }
    //Datos del Vehiculo
    private String vehiculoPlaca;
    private String vehiculoMarca;
    private String vehiculoTipo;
    private String vehiculoAnoModelo;
    private String vehiculoColor;
    private String vehiculoNumeroMotor;
    private String vehiculoNumeroChasis;
    private String vehiculoMatricula;

    public void DatosVehiculo(String placa, String Marca, String Tipo, String AñoModelo, String Color, String NumeroMotor, String NumeroChasis, String Matricula) {
        this.vehiculoPlaca = placa;
        this.vehiculoMarca = Marca;
        this.vehiculoTipo = Tipo;
        this.vehiculoAnoModelo = AñoModelo;
        this.vehiculoColor = Color;
        this.vehiculoNumeroMotor = NumeroMotor;
        this.vehiculoNumeroChasis = NumeroChasis;
        this.vehiculoMatricula = Matricula;
    }

    //atributos que almacenan los datos iniciales
    private double saldoAdeudadoInicial=0.0;
    private double plazoInicial=0.0;
    private double valorCuotasInicial=0.0;

    public double getPlazoInicial() {
        return plazoInicial;
    }

    public void setPlazoInicial(double plazoInicial) {
        this.plazoInicial = plazoInicial;
    }

    public double getSaldoAdeudadoInicial() {
        return saldoAdeudadoInicial;
    }

    public void setSaldoAdeudadoInicial(double saldoAdeudadoInicial) {
        this.saldoAdeudadoInicial = saldoAdeudadoInicial;
    }

    public double getValorCuotasInicial() {
        return valorCuotasInicial;
    }

    public void setValorCuotasInicial(double valorCuotasInicial) {
        this.valorCuotasInicial = valorCuotasInicial;
    }

    public String getVehiculoAnoModelo() {
        return vehiculoAnoModelo;
    }

    public void setVehiculoAnoModelo(String vehiculoAnoModelo) {
        this.vehiculoAnoModelo = vehiculoAnoModelo;
    }
    
    public String getClienteCedula() {
        return clienteCedula;
    }

    public void setClienteCedula(String clienteCedula) {
        this.clienteCedula = clienteCedula;
    }

    public String getClienteDireccionDomicilio() {
        return clienteDireccionDomicilio;
    }

    public void setClienteDireccionDomicilio(String clienteDireccionDomicilio) {
        this.clienteDireccionDomicilio = clienteDireccionDomicilio;
    }

    public String getClienteDireccionTrabajo() {
        return clienteDireccionTrabajo;
    }

    public void setClienteDireccionTrabajo(String clienteDireccionTrabajo) {
        this.clienteDireccionTrabajo = clienteDireccionTrabajo;
    }

    public String getClienteEdad() {
        return clienteEdad;
    }

    public void setClienteEdad(String clienteEdad) {
        this.clienteEdad = clienteEdad;
    }

    public String getClienteEstadoCivil() {
        return clienteEstadoCivil;
    }

    public void setClienteEstadoCivil(String clienteEstadoCivil) {
        this.clienteEstadoCivil = clienteEstadoCivil;
    }

    public String getClienteNombresApellidos() {
        return clienteNombresApellidos;
    }

    public void setClienteNombresApellidos(String clienteNombresApellidos) {
        this.clienteNombresApellidos = clienteNombresApellidos;
    }

    public String getClienteTelefono() {
        return clienteTelefono;
    }

    public void setClienteTelefono(String clienteTelefono) {
        this.clienteTelefono = clienteTelefono;
    }

    public String getConyugeCedula() {
        return conyugeCedula;
    }

    public void setConyugeCedula(String conyugeCedula) {
        this.conyugeCedula = conyugeCedula;
    }

    public String getConyugeNombresApellidos() {
        return conyugeNombresApellidos;
    }

    public void setConyugeNombresApellidos(String conyugeNombresApellidos) {
        this.conyugeNombresApellidos = conyugeNombresApellidos;
    }

    public String getConyugeTelefono() {
        return conyugeTelefono;
    }

    public void setConyugeTelefono(String conyugeTelefono) {
        this.conyugeTelefono = conyugeTelefono;
    }

    public double getCuotaMensual() {
        return cuotaMensual;
    }

    public void setCuotaMensual(double cuotaMensual) {
        this.cuotaMensual = cuotaMensual;
    }

    public double getEntrada() {
        return entrada;
    }

    public void setEntrada(double entrada) {
        this.entrada = entrada;
    }

    public String getGaranteCedula() {
        return garanteCedula;
    }

    public void setGaranteCedula(String garanteCedula) {
        this.garanteCedula = garanteCedula;
    }

    public String getGaranteDireccionDomicilio() {
        return garanteDireccionDomicilio;
    }

    public void setGaranteDireccionDomicilio(String garanteDireccionDomicilio) {
        this.garanteDireccionDomicilio = garanteDireccionDomicilio;
    }

    public String getGaranteEdad() {
        return garanteEdad;
    }

    public void setGaranteEdad(String garanteEdad) {
        this.garanteEdad = garanteEdad;
    }

    public String getGaranteEstadoCivil() {
        return garanteEstadoCivil;
    }

    public void setGaranteEstadoCivil(String garanteEstadoCivil) {
        this.garanteEstadoCivil = garanteEstadoCivil;
    }

    public String getGaranteNombresApellidos() {
        return garanteNombresApellidos;
    }

    public void setGaranteNombresApellidos(String garanteNombresApellidos) {
        this.garanteNombresApellidos = garanteNombresApellidos;
    }

    public String getGaranteTelefonos() {
        return garanteTelefonos;
    }

    public void setGaranteTelefonos(String garanteTelefonos) {
        this.garanteTelefonos = garanteTelefonos;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public double getInteres() {
        return interes;
    }

    public void setInteres(double interes) {
        this.interes = interes;
    }

    public int getPlazo() {
        return plazo;
    }

    public void setPlazo(int plazo) {
        this.plazo = plazo;
    }

    public double getSaldoAdeudado() {
        return saldoAdeudado;
    }

    public void setSaldoAdeudado(double saldoAdeudado) {
        this.saldoAdeudado = saldoAdeudado;
    }

    public double getValorFinal() {
        return valorFinal;
    }

    public void setValorFinal(double valorFinal) {
        this.valorFinal = valorFinal;
    }

    public String getVehiculoAñoModelo() {
        return vehiculoAnoModelo;
    }

    public void setVehiculoAñoModelo(String vehiculoAñoModelo) {
        this.vehiculoAnoModelo = vehiculoAñoModelo;
    }

    public String getVehiculoColor() {
        return vehiculoColor;
    }

    public void setVehiculoColor(String vehiculoColor) {
        this.vehiculoColor = vehiculoColor;
    }

    public String getVehiculoMarca() {
        return vehiculoMarca;
    }

    public void setVehiculoMarca(String vehiculoMarca) {
        this.vehiculoMarca = vehiculoMarca;
    }

    public String getVehiculoMatricula() {
        return vehiculoMatricula;
    }

    public void setVehiculoMatricula(String vehiculoMatricula) {
        this.vehiculoMatricula = vehiculoMatricula;
    }

    public String getVehiculoNumeroChasis() {
        return vehiculoNumeroChasis;
    }

    public void setVehiculoNumeroChasis(String vehiculoNumeroChasis) {
        this.vehiculoNumeroChasis = vehiculoNumeroChasis;
    }

    public String getVehiculoNumeroMotor() {
        return vehiculoNumeroMotor;
    }

    public void setVehiculoNumeroMotor(String vehiculoNumeroMotor) {
        this.vehiculoNumeroMotor = vehiculoNumeroMotor;
    }

    public String getVehiculoPlaca() {
        return vehiculoPlaca;
    }

    public void setVehiculoPlaca(String vehiculoPlaca) {
        this.vehiculoPlaca = vehiculoPlaca;
    }

    public String getVehiculoTipo() {
        return vehiculoTipo;
    }

    public void setVehiculoTipo(String vehiculoTipo) {
        this.vehiculoTipo = vehiculoTipo;
    }

    public SolicitudFinanciamiento(double entrada, int plazo) {
        this.entrada = entrada;
        this.plazo = plazo;
    }

    public double saldoAdeudado() {
        return valorFinal - entrada;
    }

    public Date getFechaContrato() {
        return fechaContrato;
    }

    public void setFechaContrato(Date fechaContrato) {
        this.fechaContrato = fechaContrato;
    }
    
    public double calCuota(int plazo) {
        return ((saldoAdeudado * interes) / 100) + (saldoAdeudado / plazo);
    }
    public double calInteres(){
                return ((saldoAdeudado * interes) / 100);
    }
    public double calSaldoCuota(){
                return (saldoAdeudado / plazo);
    }
}
